import Note from '~/components/text/note'
import { TerminalInput } from '~/components/text/terminal'
import { InlineCode } from '~/components/text/code'
import Caption from '~/components/text/caption'
import Link from '~/components/text/link'

export const meta = {
  editUrl:
    'pages/docs/integrations/integrations-docs-mdx/creating-an-integration/project-setup.mdx',
  lastEdited: '2019-10-15T22:03:42.000Z'
}

## Step 1: Project Setup

### Install Node.js and Now CLI

<Note>
  If you already have the latest stable versions of Node.js and{' '}
  <Link href="/now">Now CLI</Link>. You can{' '}
  <Link href="#creating-an-integration/step-1-project-setup/add-a-package-json-file">
    skip this step
  </Link>
  .
</Note>

Firstly, download and install [Node.js](https://nodejs.org/en/).

Next, install Now CLI with a package manager.

To install Now CLI with [npm](https://www.npmjs.com/), use the following from the terminal:

<TerminalInput>npm i -g now</TerminalInput>
<Caption>Installing Now CLI with npm.</Caption>

### Add a package.json File

We are using some npm modules inside this UIHook. So, let's create a file called `package.json` with the following content:

```json
{
  "name": "my-ui-hook",
  "dependencies": {
    "@zeit/integration-utils": "latest"
  }
}
```

<Caption>
  An example <InlineCode>package.json</InlineCode> file for your UIHook.
</Caption>

Then, simply type: `npm i` to install dependencies.
